
columns=[[
    {
        field : 'ck',
        checkbox : true
    },{
        field:'id',
        title:'序号',
        align : 'center',
        width:100,
        hidden : true
    },{
        field:'userName',
        title:'姓名',
        align : 'center',
        width:100
    },{
          field:'sex',
          title:'性别',
          align : 'center',
          width:100
    },{
        field:'evpAccount',
        title:'帐号',
        align : 'center',
        width:100
    },{
        field:'addr',
        title:'地址',
        align : 'center',
        width:200,
        formatter: function(value,row,index){
            return '<span title="'+value+'">'+value+'</span>'
        }
    }
]];

var timeFn=null;

var defauleData={
    /*
    datalistData={description: "test04",evpCode: "test04",evpName: "test05",id: 4,text: "test05"}
    */
    datalistData:null,
    menuTreeIdList:[],
    tabs:{
        index:null,
        title:null,
    },
    isAddAuthUser:true, // 当check userDataGrid表格的某行时，是否触发添加组--用户事件
    isDelAuthUser:true
};

//var data=[
//         {"text":"Epson WorkForce 845","group":"Printer","id":"1"},
//         {"text":"Canon PIXMA MG5320","group":"Printer"},
//         {"text":"HP Deskjet 1000 Printer","group":"Printer"},
//         {"text":"Cisco RV110W-A-NA-K9","group":"Firewall"},
//         {"text":"ZyXEL ZyWALL USG50","group":"Firewall"},
//         {"text":"NETGEAR FVS318","group":"Firewall"},
//         {"text":"Logitech Keyboard K120","group":"Keyboard"},
//         {"text":"Microsoft Natural Ergonomic Keyboard 4000","group":"Keyboard"},
//         {"text":"Logitech Wireless Touch Keyboard K400","group":"Keyboard"},
//         {"text":"Logitech Gaming Keyboard G110","group":"Keyboard"},
//         {"text":"Nikon COOLPIX L26 16.1 MP","group":"Camera"},
//         {"text":"Canon PowerShot A1300","group":"Camera"},
//         {"text":"Canon PowerShot A2300","group":"Camera"}
//         ];

$(function(){
//    $('#cc').layout();
//    			setHeight();

    $('#groupDataList').datalist({
        url: '/eGroup/list',
        method:'get',
        checkbox: true,
        lines: true,
        onClickRow: function(index,row){

            clearTimeout(timeFn);
            timeFn=setTimeout(function(){
                defauleData.datalistData=row;
                console.log(defauleData.datalistData);
                onClickDataListRow(index,row);
            },300);
        },
        onDblClickRow: function(index,row){
            clearTimeout(timeFn);
            onDblClickDataListRow(index,row);
        }
    });

    $('#menuTree').tree({
                        url: '/baseMenu/tree',
                        method: 'get',
                        checkbox:true,
                        animate:true,
                        onlyLeafCheck:true,//只有叶子节点可以被选中
                        loadFilter: function(data){
                                if (data.d){
                                    return data.d;
                                } else {
                                    return data;
                                }
                            },
                        onCheck:function(e,checked){
                            onCheckMenuTree(this,e,checked);
                        }
                    });
    $('#tt').tabs({
        onSelect:function(title,index){
            onSlectTabs(title,index)
        }
    });

    $('#userDataGrid').datagrid({
        url:'/eUser/list',
        method:'get',
        columns: columns,
        rownumbers: true,
        pagePosition: 'bottom',
        pagination: true,
        pageList: [10,20,30,40,50],
        idField: 'id',
        pageSize:10,
        pageNumber: 1,
        striped: true,
        singleSelect:false,
        onCheck:function(index, row){
            if(defauleData.isAddAuthUser){
                onCheckUserDataGrid(index,row);
            }
        },
        onUncheck:function(index,row){
            if(defauleData.isDelAuthUser){
                onUnCheckUserDataGrid(index,row);
            }
        },
        onLoadSuccess:function(data){
            // 当加载用户列表成功后，检查哪些用户在被选中的组中
            getUserOfAuth();
        }
    });

    var p = $('#userDataGrid').datagrid().datagrid('getPager');

    p.pagination({
        beforePageText: '第',
        afterPageText:'共{pages}页',
        displayMsg: '当前显示 {from} 到 {to} ,共{total}记录'
    });

    $('#userNameCBBox').combobox({
        url:'/eUser/list',
        method:'get',
        valueField:'userName',
        textField:'userName',
        hasDownArrow: false,
        panelHeight: 'auto',
        onChange:function(newValue,oldValue){
             if (newValue != null && newValue !== "") {
                  $('#userNameCBBox').combobox('reload','/eUser/list/combobox?userName='+newValue);
             }
             if (newValue ==="") {
                 $('#aa').combobox('loadData', {});
                 $("#aa").combobox('clear').combobox('loadData', {});
               }
        }
    });
});


function setHeight(){
    var c = $('#cc');
    var p = c.layout('panel','center');	// get the center panel
    var oldHeight = p.panel('panel').outerHeight();
    p.panel('resize', {height:'auto'});
    var newHeight = p.panel('panel').outerHeight();
    c.layout('resize',{
        height: (c.height() + newHeight - oldHeight)
    });
}

/*
    切换提交按钮为添加
*/
function addItem(){
    $("#submitEditButton").hide();
    $("#submitButton").show();
}

/*
    切换提交按钮为编辑
*/
function editItem(){
    $("#submitEditButton").show();
    $("#submitButton").hide();
}

/*
    切换提交按钮为添加
*/
function authDistribution(){
    $("#submitEditButton").hide();
    $("#submitButton").show();
}

/*
    切换提交按钮为添加
*/
function associatedUser(){
    $("#submitEditButton").hide();
    $("#submitButton").show();
}

/*
    切换提交按钮为添加
*/
function authDelegate(){
    $("#submitEditButton").hide();
    $("#submitButton").show();
}

/*
    清空表单内容
*/
function clearForm(){
    $('#ff').form('clear');
}

/*
    单击数据列表
*/
function onClickDataListRow(index,row){
    var datalistId=defauleData.datalistData.id;

    var tab = $('#tt').tabs('getSelected');
    var index = $('#tt').tabs('getTabIndex',tab);

    switch(index)
        {
        case 0:

          break;
        case 1:
            // 如果已经选择了权限，则展示该权限下的菜单
                getMenuOfAuth();
          break;
        case 2:
            // 如果已经选择了权限，则展示该权限下的菜单
                // 将是否添加组--用户标识设置为false，避免查询到时用户，自动选取dagagrid表格时，触发添加组--用户事件
                defauleData.isAddAuthUser=false;
                getUserOfAuth();
                // 查询完成后，将标识重新设置为true
                defauleData.isAddAuthUser=true;
            break;
        default:
        }
}

/*
    双击数据列表
*/
function onDblClickDataListRow(index,row){
    $("#id").textbox('setValue',row.id);
    $("#evpCode").textbox('setValue',row.evpCode);
    $("#evpName").textbox('setValue',row.evpName);
    $("#description").textbox('setValue',row.description);
}

/*
    添加菜单信息
*/
function submitForm(){
    var checkResult=checkValidateForm($("#ff"));

    if(checkResult){
        var fields = $("#ff").find("input").serializeArray();
        var dataJson=convertFormDataToJson(fields);
        delete dataJson.id;

        apiAuthManageAddAuthData(JSON.stringify(dataJson),function(res){
            if(res.status==200){
                var tip=getMessagerTip("ok",res.message);
                messager('成功',tip,4000,'info');

                $('#groupDataList').datalist('reload');
            }else{
                var tip=getMessagerTip("no",res.message);
                messager('失败',tip,4000,'info');
            }
        });
    }
}

/*
    编辑菜单信息
*/
function submitEditForm(){
    var checkResult=checkValidateForm($("#ff"));

    if(checkResult){
        var fields = $("#ff").find("input").serializeArray();

        var data=convertFormDataToJsonStr(fields);

        apiAuthManageEditAuthData(data,function(res){
            if(res.status==200){
                var tip=getMessagerTip("ok",res.message);
                messager('成功',tip,4000,'info');

                $('#groupDataList').datalist('reload');
            }else{
                var tip=getMessagerTip("no",res.message);
                messager('失败',tip,4000,'info');
            }
        });
    }
}

function removeItem(){
    var node = $("#groupDataList").datalist("getSelected");

    $.messager.confirm('确认','您确认想要删除该权限吗？',function(r){
            if (r){
                var id=node.id;
                apiAuthManageDelAuthData(id,function(res){
                    if(res.status==200){
                        var tip=getMessagerTip("ok",res.message);
                        messager('成功',tip,4000,'info');

                        $('#groupDataList').datalist('reload');
                    }else{
                        var tip=getMessagerTip("no",res.message);
                        messager('失败',tip,4000,'info');
                    }
                });
            }
        });
}

/*
    添加或取消添加权限与菜单关系
*/
function onCheckMenuTree(ele,e,checked){
}

/*
    当触发tabs面板时触发事件
*/
function onSlectTabs(title,index){
    switch(index)
    {
    case 0:

      break;
    case 1:
        // 如果已经选择了权限，则展示该权限下的菜单
        if(defauleData.datalistData!=null){
            getMenuOfAuth();
        }
      break;
    default:
    }
}

/*
    获取某权限下的菜单,并选中
*/
function getMenuOfAuth(){
    var authId=defauleData.datalistData.id;
    apiAuthManageGetMenuOfAuth(authId,function(res){
        // 先清空目前选 中的节点
        var nodes = $('#menuTree').tree('getChecked');
        if(nodes != null && nodes.length > 0){
            for(var i=0;i<nodes.length;i++){
                $('#menuTree').tree('uncheck', nodes[i].target);
            }
        }

        if(res != null && res.length > 0){
            for(var i=0;i < res.length; i++){
                var menu=res[i];
                // 找到某id为树节点
                var node = $('#menuTree').tree('find', menu.id);
                // 设置选中该节点
                $('#menuTree').tree('check', node.target);
            }
        }
    });
}


function subAuthMenu(){
    var datalistNode=defauleData.datalistData;
    if(datalistNode==null){
        messagerAlert('警告','请选择【组】','warning');
        return;
    }

    var groupId=datalistNode.id;
    var menuIds=$("#menuTree").tree('getChecked');

    if(menuIds == null){
        messagerAlert('警告','请选择【菜单】','warning');
         return;
    }

    var menuIdsStr="";
    for(var i=0; i<menuIds.length; i++){
        if(i == menuIds.length-1){
            menuIdsStr+=menuIds[i].id;
        }else{
            menuIdsStr+=menuIds[i].id+",";
        }
    }

    var data={
        authorityId:groupId,
        resourceId:menuIdsStr,
        authorityType:'group',
        resourceType:'menu'
    }

    apiAuthManageAddAuthMenu(data,function(res){
        if(res.status==200){
            var tip=getMessagerTip("ok",res.message);
            messager('成功',tip,4000,'info');
        }else{
            var tip=getMessagerTip("no",res.message);
            messager('失败',tip,4000,'info');
        }
    });
}

function searchUserList(){
    var userName=$('#userNameCBBox').combobox('getValue');
    var evpAccount=$('#accountCBBox').combobox('getValue');
    $('#userDataGrid').datagrid('load',{
    	userName: userName,
    	evpAccount: evpAccount
    });


}

/*
    当选择用户列表时触发
*/
function onCheckUserDataGrid(index,row){
    var datalistNode=defauleData.datalistData;
    if(datalistNode==null){
        messagerAlert('警告','请选择【组】','warning');
        return;
    }
    var groupId=datalistNode.id;

    var userId=row.id;

    var data={
        groupId:groupId,
        userId:userId
    }

    apiAuthManageAddAuthUser(data,function(res){
        if(res.status==200){
            var tip=getMessagerTip("ok",res.message);
            messager('成功',tip,4000,'info');
        }else{
            var tip=getMessagerTip("no",res.message);
            messager('失败',tip,4000,'info');
        }
    });
}

/*
    当取消选中用户列表时触发
*/
function onUnCheckUserDataGrid(index,row){
    var datalistNode=defauleData.datalistData;
    if(datalistNode==null){
        messagerAlert('警告','请选择【组】','warning');
        return;
    }
    var groupId=datalistNode.id;

    var userId=row.id;

    var data={
        groupId:groupId,
        userId:userId
    }

    apiAuthManageDelAuthUser(data,function(res){
        if(res.status==200){
            var tip=getMessagerTip("ok",res.message);
            messager('成功',tip,4000,'info');
        }else{
            var tip=getMessagerTip("no",res.message);
            messager('失败',tip,4000,'info');
        }
    });
}

function getUserOfAuth(){
    if(defauleData.datalistData != null){
        var authId=defauleData.datalistData.id;
        apiAuthManageGetUserOfAuth(authId,function(res){
            defauleData.isAddAuthUser=false;
    //         先清空目前选中的节点
            defauleData.isDelAuthUser=false;
            $('#userDataGrid').datagrid('clearChecked');
            defauleData.isDelAuthUser=true;

            if(res != null){
                var rows=res.rows;
                for(var i=0;i < rows.length; i++){
                    var row=rows[i];
                    var dataGridRow=$('#userDataGrid').datagrid('getRowIndex',row.id);
                    $('#userDataGrid').datagrid('checkRow',dataGridRow);
                }
            }
            defauleData.isAddAuthUser=true;
        });
    }
}